import Vue from 'vue';
import MessageComponent from '../views/MyMessage.vue';

// 创建构造函数
const MessageConstructor = Vue.extend(MessageComponent);

// 定义消息函数
const Message = (options = {}) => {
  // 如果是字符串，直接作为消息内容
  if (typeof options === 'string') {
    options = {
      message: options
    };
  }

  // 创建实例并挂载
  const instance = new MessageConstructor({
    propsData: options
  });
  instance.$mount();
  
  // 添加到DOM
  document.body.appendChild(instance.$el);
  
  // 监听关闭事件并移除DOM
  instance.$on('close', () => {
    document.body.removeChild(instance.$el);
  });
  
  return instance;
};

// 添加不同类型的消息方法
['info', 'success', 'warning', 'error'].forEach(type => {
  Message[type] = (message, duration = 1000) => {
    return Message({
      message,
      type,
      duration
    });
  };
});

// 安装插件
Message.install = (Vue) => {
  Vue.prototype.$message = Message;
};

export default Message;